package com.leyou.search.pojo;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Map;
import java.util.Set;

@Data
@Document(indexName = "goods",type = "docs")
public class Goods {

    /*
    * 1.搜索的商品有 spu_id
    * 2.sku集合 不采用分词搜索，可以采用json存储：包含图片image，title
    * 3.价格 price ：因为不同的sku,显示的价格不同，采用集合存储，但，有需要去重，采用set集合
    * 4.all字段，拼接需要搜索的信息：标题，分类名称（包含一二三级），品牌名称
    * 5.分类id
    * 6.品牌id
    * 7规格参数 specs,因为规格参数的名称和值分开存储的，参数名称String，值Object，键值对形式
    * map<String,Object>
    *8.创建时间 date
    * 9.卖点
    * */

    @Id
    @Field(type = FieldType.Keyword)//不分词
    private Long id;//实际为spu_id

    @Field(type = FieldType.Keyword, index = false)
    private String subTitle;//卖点 不采用分词

    @Field(type = FieldType.Keyword, index = false)
    private String skus;//sku集合，采用json存储，不采用分词，搜索

    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String all;//用于搜索的组合拼接的字段 ，采用分词

    private Set<Long> price;//价格

    private Long categoryId;//分类id

    private Long brandId;//品牌id

    private Long  createTime;//创建时间

    private Map<String, Object> specs;//规格参数


}

